﻿using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using DTO;
using BUS;

namespace QuanLyDoiXe
{
    public partial class MH_PhanCong_Xe_TaiXe : Form
    {
        public string ID;
        public int MaNV;

        public MH_PhanCong_Xe_TaiXe(string ID,int MaNV)
        {
            InitializeComponent();
            this.ID = ID;
            this.MaNV = MaNV;
        }

        private void btQuayLai_Click(object sender, EventArgs e)
        {
            new MH_QuanLy(ID, MaNV).Show();
            this.Close();
        }

        private void btLamLai_Click(object sender, EventArgs e)
        {
            tbMaXe.Clear();
            tbMaTX.Clear();
        }

        private void tbMaTX_TextChanged(object sender, EventArgs e)
        {
            if (tbMaTX.Text == "")
            {
                tbTenTX.Clear();
                tbDiaChiTX.Clear();
                tbDienThoaiTX.Clear();
                tbKinhNghiem.Clear();
                return;
            }
            TaiXeBus txBus = new TaiXeBus();
            IEnumerable<TAIXE> txDto;
            txDto = txBus.LayTaiXe(Convert.ToInt32(tbMaTX.Text));
            if (txDto.Count() != 0)
            {
                tbTenTX.Text = txDto.Single().TenTX;
                tbDiaChiTX.Text = txDto.Single().DiaChi;
                tbDienThoaiTX.Text = txDto.Single().DienThoai;
                tbKinhNghiem.Text = txDto.Single().KinhNghiem.ToString();
            }
            else
            {
                tbTenTX.Clear();
                tbDiaChiTX.Clear();
                tbDienThoaiTX.Clear();
                tbKinhNghiem.Clear();
                return;
            }
        }

        private void tbMaTX_KeyPress(object sender, KeyPressEventArgs e)
        {
            if (!char.IsDigit(e.KeyChar) && !char.IsControl(e.KeyChar))
            {
                e.Handled = true;
            }
        }

        private void tbMaXe_TextChanged(object sender, EventArgs e)
        {
            if (tbMaXe.Text == "")
            {
                tbBienSo.Clear();
                tbTrongTai.Clear();
                tbHangXe.Clear();
                tbNamSX.Clear();
                return;
            }
            XeBus xBus = new XeBus();
            IEnumerable<XE> xDto;
            xDto = xBus.LayXe(Convert.ToInt32(tbMaXe.Text));
            if (xDto.Count() != 0)
            {
                tbBienSo.Text=xDto.Single().BienSo;
                tbTrongTai.Text=xDto.Single().LOAITRONGTAI.LoaiKg.ToString();
                tbHangXe.Text = xDto.Single().LOAIHANGXE.TenHang.ToString();
                tbNamSX.Text=xDto.Single().NamSX.ToString();
            }
            else
            {
                tbBienSo.Clear();
                tbTrongTai.Clear();
                tbHangXe.Clear();
                tbNamSX.Clear();
                return;
            }
        }

        private void tbMaXe_KeyPress(object sender, KeyPressEventArgs e)
        {
            if (!char.IsDigit(e.KeyChar) && !char.IsControl(e.KeyChar))
            {
                e.Handled = true;
            }
        }

        private void MH_PhanCong_Xe_TaiXe_Load(object sender, EventArgs e)
        {
            // TODO: This line of code loads data into the 'quanLyDoiXeDataSet.PHANCONG_XE_TAIXE' table. You can move, or remove it, as needed.
          
            dtNgayPhanCong.Value = DateTime.Now;
            tbMaNV.Text = MaNV.ToString();
            PhanCongXeTaiXeBus pcBus = new PhanCongXeTaiXeBus();
            DGPhanCong.DataSource = pcBus.BangPhanCong();
        }

        private void btPhanCong_Click(object sender, EventArgs e)
        {

            if (tbTenTX.Text == "")
            {
                MessageBox.Show("Chưa Đúng Mã Tài Xế!");
                return;
            }
            if (tbBienSo.Text == "")
            {
                MessageBox.Show("Chưa Đúng Mã Xe!");
                return;
            }
            //// kiem tra thoi gian ngay ket thuc phan cong voi thoi gian bat dau
            if (dtThoiGianKT.Value.Year < dtThoiGianBD.Value.Year)
            {
                MessageBox.Show("Thời gian Kết Thúc phân công phải lớn hớn Thời Gian Bắt Đầu Phân Công!");
                return;
            }
            else
            {
                if (dtThoiGianKT.Value.Month < dtThoiGianBD.Value.Month)
                {
                    MessageBox.Show("Thời gian Kết Thúc phân công phải lớn hớn Thời Gian Bắt Đầu Phân Công!");
                    return;
                }
                else
                {
                    if (dtThoiGianKT.Value.Day < dtThoiGianBD.Value.Day)
                    {
                        MessageBox.Show("Thời gian Kết Thúc phân công phải lớn hớn Thời Gian Bắt Đầu Phân Công!");
                        return;
                    }
                }
            }
            ////////////////////////////////////////////////////// kiem tra thoi ngay phan cong voi thoi gian bat dau
            if (dtNgayPhanCong.Value.Year < dtThoiGianBD.Value.Year)
            {
                MessageBox.Show("Ngày phân công phải nhỏ hơn Thời Gian Bắt Đầu Phân Công!");
                return;
            }
            else
            {
                if (dtNgayPhanCong.Value.Month < dtThoiGianBD.Value.Month)
                {
                    MessageBox.Show("Ngày phân công phải nhỏ hơn Thời Gian Bắt Đầu Phân Công!");
                    return;
                }
                else
                {
                    if (dtNgayPhanCong.Value.Day < dtThoiGianBD.Value.Day)
                    {
                        MessageBox.Show("Ngày phân công phải nhỏ hơn Thời Gian Bắt Đầu Phân Công!");
                        return;
                    }
                }
            }
            ThamSoBus tsBus = new ThamSoBus();
            if (Convert.ToInt32(tbTrongTai.Text) < 5)
            {
                    MessageBox.Show("Trọng Tải Xe Yêu Cầu Trên 5 Tấn!");
                    return;
            }
            if(Convert.ToInt32(tbKinhNghiem.Text)<tsBus.KhinhNghiemToiThieu())
            {
                    MessageBox.Show("Chưa Đủ Kinh Nghiệm !");
                    return;
            }
            //////////////////////

            PhanCongXeTaiXeBus pcBus = new PhanCongXeTaiXeBus();
            PHANCONG_XE_TAIXE pcDto = new PHANCONG_XE_TAIXE();
            pcDto.MaPCong = pcBus.LayMa();
            pcDto.MaXe = Convert.ToInt32(tbMaXe.Text);
            pcDto.MaTX = Convert.ToInt32(tbMaTX.Text);
            pcDto.NgayPhanCong = dtNgayPhanCong.Value;
            pcDto.ThoiGianBD = dtThoiGianBD.Value;
            pcDto.ThoiGianKT = dtThoiGianKT.Value;
            pcDto.MaNhanVien = MaNV;
            pcBus.TiepNhanPhanCong(pcDto);
            MessageBox.Show("Phân Công Hoàn Tất");

            DGPhanCong.DataSource = pcBus.BangPhanCong();
        }






    }
}
